Motion estimation is an important part of video encoding. It has a direct impact on encoded video quality and bit size. One purpose of motion estimation is to search for the most similar image region in one or more reference pictures, in order to reduce the amount of redundant information in a current picture. Motion estimation, however, is one of the most time consuming parts in the entire video encoding pipeline. In some cases, motion estimation may account for over half of the processing time needed for the total encoding process. A faster motion estimation algorithm would therefore significantly improve encoding and communication performance. It is with respect to these and other considerations that the present improvements have been needed.